#define _CRT_SECURE_NO_WARNINGS  1
#pragma warning(disable:6031)

#include "test.h"

//bool isBeautiful(vector<int>& pair1, vector<int>& pair2)
//{
//	int count = 0;
//	for (int i = 0; i < 3; i++)
//		if (pair1[i] != pair2[i]) ++count;
//
//	if (count == 1) return true;
//
//	return false;
//}
//
//int BeautifulTriplePairs()
//{
//
//	int n; 
//	cin >> n;
//	for (int i = 0, m, a, b, c; i < n; i++)
//	{
//		vector<vector<int>> pairs;
//
//		cin >> m;
//		cin >> a >> b >> c;
//		pairs.push_back({ a, b, c });
//
//		m -= 3;
//		while (m--)
//		{
//			a = b; 
//			b = c;
//			cin >> c;
//			pairs.push_back({ a, b, c });
//		}
//
//		int x = pairs.size();
//		long long count = 0;
//		for (int j = 0; j < x-1; j++)
//			for (int k = j + 1; k < x; k++)
//				if (isBeautiful(pairs[j], pairs[k])) ++count;
//		
//		cout << count << endl;
//	}
//
//
//	return 0;
//}

int BeautifulTriplePairs()
{

	int n;
	cin >> n;
	for (int i = 0, m, a, b, c; i < n; i++)
	{
		vector<vector<int>> pairs;

		cin >> m;
		cin >> a >> b >> c;
		pairs.push_back({ a, b, c });

		m -= 3;
		while (m--)
		{
			a = b;
			b = c;
			cin >> c;
			pairs.push_back({ a, b, c });
		}

		int x = pairs.size();
		long long count = 0;
		for (int j = 0; j < x - 1; j++)
			for (int k = j + 1; k < x; k++)
			{
				int num = 0;
				for (int i = 0; i < 3; i++)
					if (pairs[j][i] != pairs[k][i])
						++num;
				if (num == 1) ++count;
			}

		cout << count << endl;
	}


	return 0;
}